package com.schx.budget.util;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;

import java.util.Date;
import java.util.Map;

public class JwtUtil {

    /**
     * 生成jwt令牌
     * @param expireDate 过期时间
     * @param claims  存储的自定义用户信息
     * @return token
     */
    public static String createToken(Date expireDate, Map claims){

        JwtBuilder builder = Jwts.builder()
                .setHeaderParam("typ","JWT")
                .setIssuedAt(new Date()) //创建时间
                .setExpiration(expireDate)//过期时间
                .setClaims(claims);

        //自定义信息
//                .signWith(secKey().getPrivate(), SignatureAlgorithm.RS256);//指定密码及加密算法,使用私钥加密
            return builder.compact();

    }

    /**
     * 解析令牌，并获取claims信息
     * @param token
     * @return
     */
    public static Claims parseJwt(String token){
         return Jwts.parserBuilder().build().parseClaimsJwt(token).getBody();
    }





}
